-- Explanation of globals: -- gButtonHot: A true/false flag for buttons that turns off interactivity while the -- button is busy carrying out it's stuff. This prevents thrashing. -- gMinSlide/gMaxSlide: Values for the limits of the answer slider. Initialized in this script. -- gStartDepth: This holds screen depth of the user's computer before he/she launched Focus. -- numberColor: This is a list that holds the CLUT values for the different positions of -- the 1-bit readout numbers on the answer slider (for Chapter 1). -- gOldRoll: Equals 0 if no item is rolled over. Equals 1-9 if a local window item is -- rolled over. Equals 10-15 if a button is rolled over. -- prefIO: FileIO factory object called when Focus preference file IO is needed. Focus -- prefs = "taispercent" field in the cast (for first-use initialization purposes). -- This object is only used when fileIO is needed - most of the time it is disposed. -- gDemographics: Equivalent to demographic field of card title. A simple list containing -- user's name and password. (What about situation of 2 users?) -- Make sure that this is writing properly to prefText... FIX -- gRolloverOn: Sets up a flag to turn the rollover stuff on (1) or off (0). Checked -- from the idle handler. -- gButtonStatus: A linear list that holds the current status of the buttons. Positions: -- 1=logo, 2=bookmark, 3=sound, 4=video/file, 5=mainMenu, 6=exit, 7=toggle, -- 8=unimplemented. States: 0=disabled, 1=normal, 2+=special states. -- For position 4: 0=disabled video, 1=normal video, 0.0=disabled file, 1.0=enabled file -- Exceptions: Sound is given as a float, the digits to the right of the decimal -- point expressing last sound setting. Toggle is also a float, 1.0=normal toggle, -- 1.1=toggle left disabled, 1.2=toggle right disabled. -- This information is referenced by the button scripts. -- gSpriteChannels: A linear list that holds the sprite channel numbers for various screen -- elements, especially buttons. Positions: 1=logo, 2=bookmark, 3=soundButton, -- 4=videoButton/fileButton, 5=mainMenuButton, 6=quitButton, 7=toggle, 8=soundSliderBar -- This global might not be used (since button channels are so consistent and -- descriptive prop lists can't be used since they are so slow). -- However, it is currently used. Using gSpriteChannels is the proper way to -- reference sprite channels. -- gVolume: The current overall (sounds & video) volume setting. -- gRollLocH: A linear list containing the locH of rollover text so that it can be restored -- on rollover. When not rolled over, the buttons are thrown off screen. -- Positions: 1=logo, 2=bookmark, 3=sound, 4=video, 5=mainMenu, 6=exit, 7=toggle(if one). -- gMachine: Holds the machineType. If 256, then it's an IBM PC. -- gcarpet: XObject instance used to hide the finder, works with RearWindow. -- Explanation of other globals not declared in this script: -- prefText: Text holder for preferences while program is active. prefIO writes -- this to preferences only when the user quits. -- rawScores: Array factory instance equivalent to numbered fields on raw scores card. -- testAnswers: A list that holds the user's input from chapter 1. -- prefFolderPath: A string that holds the path to the preferences directory. -- prefFileName: A string that holds the name of the preferences. On Mac = "Focus Preferences", -- on Windows = "FOCUS.INI"